Static Binary Analysis And Transformation For Sandboxing Untrusted Plugins
نویسنده
چکیده
of the Thesis Static Binary Analysis And Transformation For Sandboxing Untrusted Plugins by Prateek Saxena Master of Science in Computer Science Stony Brook University 2007 Computers today have become a integral part of daily activities for users who rely on them as means of communication, financial management, entertainment, and business. Moreover, users today are depending increasingly on off-the-shelf software from untrusted sources like the Internet for everyday life. This factor has prompted research on mitigating the threat of untrusted programs running on the end user’s personal computers. Relatively lesser focus has been laid on the threat of software extensions such as plug-ins and modules for trusted host system such as web browsers and email clients. With the alarming increase in malware that continues to defeat state-of-the-art defenses and evades detection, this work aims to be part of a general body of “proactive” defense technique that gives strong guarantees against future attacks, as opposed to a defense strategy that is developed in response to known vulnerabilities and their exploits. In this context, this thesis has three objectives. First, it analyzes the threat model imposed by shared-address space extensions and modules that plug into larger host systems. Second, it surveys the limitations of existing mechanisms to deal with this threat, and proposes a practical approach to confinement of untrusted extensions. Finally, it presents a robust static binary rewriting and analysis framework that has more general applicability as tool for analysis and instrumentation for security applications where no source code is available.
منابع مشابه
Efficient, Verifiable Binary Sandboxing for a CISC Architecture
Executing untrusted code while preserving security requires enforcement of memory and control-flow safety policies: untrusted code must be prevented from modifying memory or executing code except as explicitly allowed. Software-based fault isolation (SFI) or “sandboxing” enforces those policies by rewriting the untrusted code at the level of individual instructions. However, the original sandbo...
متن کاملA Two-Tier Sandbox Architecture to Enforce Modular Fine-Grained Security Policies for Untrusted JavaScript
Existing approaches to providing security for untrusted JavaScript include isolation of capabilities – a.k.a. sandboxing. Features of the JavaScript language conspire to make this nontrivial, and isolation normally requires complex filtering, transforming and wrapping untrusted code to restrict the code to a manageable subset. The latest JavaScript specification (ECMAScript 5) has been modified...
متن کاملA Flexible Containment Mechanism for Executing Untrusted Code
A widely used technique for securing computer systems is to execute programs inside protection domains that enforce established security policies. These containers, often referred to as sandboxes, come in a variety of forms. Although current sandboxing techniques have individual strengths, they also have limitations that reduce the scope of their applicability. In this paper, we give a detailed...
متن کاملCombining Control-Flow Integrity and Static Analysis for Efcient and Validated Data Sandboxing
In many software attacks, inducing an illegal control-flow transfer in the target system is one common step. ControlFlow Integrity (CFI [1]) protects a software system by enforcing a pre-determined control-flow graph. In addition to providing strong security, CFI enables static analysis on lowlevel code. This paper evaluates whether CFI-enabled static analysis can help build efficient and valid...
متن کاملGoing Native: Using a Large-Scale Analysis of Android Apps to Create a Practical Native-Code Sandboxing Policy
Current static analysis techniques for Android applications operate at the Java level—that is, they analyze either the Java source code or the Dalvik bytecode. However, Android allows developers to write code in C or C++ that is cross-compiled to multiple binary architectures. Furthermore, the Java-written components and the native code components (C or C++) can interact. Native code can access...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2007